# 面向对象 p131
# 新式类 和 旧式类 py3都是

# 魔法方法? 可以理解为对象生命周期方法 init[构造器] str[toString] del[销毁]
# 显式声明 继承自object
class Dog(object):
    """
    继承自object 需要显示声明
    """

    def play(self, *args, **kwargs):
        print(f"self:{self},args:{args},kwargs:{kwargs}")

    print(object)

    def __init__(self):
        self.name = self
        print("执行init方法")

    def __str__(self):
        """
        toString方法 默认内存地址
        :return:
        """
        print("执str方法")
        return ""

    pass


# p2为旧式类 (deprecated)
class Cat:
    """
    不继承自object
    """
    pass


dog = Dog()
dog.play(1, k="111")
print(dog)

# 146
